
#pragma once

#include <windef.h>

class RGBColor
{
public:
	RGBColor(FLOAT r, FLOAT g, FLOAT b);
	~RGBColor();

	RGBColor(CONST RGBColor& other);
	RGBColor& operator = (CONST RGBColor& other);

	// Predefined colors.
	//-----------------------------------------------
	static RGBColor Aqua();
	static RGBColor Black();
	static RGBColor Blue();
	static RGBColor Fuchsia();
	static RGBColor Green();
	static RGBColor Lime();
	static RGBColor Maroon();
	static RGBColor Navy();
	static RGBColor Olive();
	static RGBColor Purple();
	static RGBColor Red();
	static RGBColor Silver();
	static RGBColor Teal();
	static RGBColor White();
	static RGBColor Yellow();

	// Getters & Setters.
	//-----------------------------------------------
	FLOAT GetR() CONST;
	VOID SetR(FLOAT r);

	FLOAT GetG() CONST;
	VOID SetG(FLOAT g);

	FLOAT GetB() CONST;
	VOID SetB(FLOAT b);

private:
	// Attributes.
	//-----------------------------------------------
	FLOAT m_r, m_g, m_b;
};

